// #include <stdio.h>
// #define N 1010
// int a[N];
// int main()
// {
//     int n;//定义变量n
//     printf("%d", n);
//     // int arr[n];//数组大小为n
//     // int i = 0;
//     // scanf("%d", &n);
//     for (int i = 1; i <= n;i++)
//     {
//         scanf("%d", &a[i]);
//     }
//         // for (i = 0; i < n; i++)
//         // {
//         //     scanf("%d", &arr[i]);
//         // }
//         // int a, b, c;
//         // int c2 = 0, c3 = 0;
//         // for (i = 0; i < n; i++)
//         // {
//         //     a = arr[i] / 10;
//         //     b = arr[i] % 10;
//         //     c = a + b;
//         //     if (c >= c2)
//         //     {
//         //         c2 = c;
//         //         c3 = arr[i];
//         //     }
//         // }
//         // printf("%d", c3);
//         return 0;
// }

// #include<stdio.h>
// int main()
// {
//     int n;
//     scanf("%d", &n);
//     bool flag = true;
//     //只需要判断在2~n-1范围内是否有数能被n整除
//     for(int i = 2; i <= n - 1; i++)
//     {
//         if(n % i == 0)
//         {
//             flag = false;
//             break;
//         }
//     }
//     if(flag == true)
//         printf("Yes\n");
//     else
//         printf("No\n");
// }

// #include <stdio.h>
// #include <math.h>
// #define N 110
// int a[N];
// bool check(int x)
// {
//     if(x==2) return false;
//     for(int i=2;i<=sqrt(x);i++)
//     {
//         if(x%i==0)
//         {
//             return true;
//         }
//     }
//     return false;
// }
// int main()
// {
//     int n;
//     scanf("%d", &n);
//     for (int i = 0; i < n; i++)
//     {
//         scanf("%d", &a[i]);
//     }
//     int cnt = 0;
//     for (int i = 0; i <= n;i++)
//     {
//         if(check(a[i]))
//         {
//             cnt++;
//             printf("%d ", a[i]);
//         }
//     }
//     if(cnt == 0)
//     {
//         printf("SAD");
//     }
// }

//想到：跑个循环从a到b，然后一个个判断当前数是不是符合题意的

// #include<stdio.h>
// #include<math.h>
// bool is_prime(int x)
// {
//     if(x==2) return true;
//     for(int i=2;i<=sqrt(x);i++)
//     {
//         if(x%i==0)
//         {
//             return false;
//         }
//     }
//     return true;
// }
// int main()
// {
//     int a,b;
//     scanf("%d %d", &a, &b);
//     int cnt = 0;
//     for(int i=a;i<=b;i++)
//     {
//         if(is_prime(i))
//         {
//             cnt++;
//         }
//     }
//     printf("%d", cnt);
//     return 0;
// }

#include <stdio.h>
#include <math.h>

// bool isprime(int n)
// {
//     if(n < 2) return false;
//     for(int i = 2; i <= sqrt(n); i ++)
//     if(n % i == 0)
//     return false;

//     return true;
// }
bool isprime(int x)
{
    if (x == 0 || x == 1)
        return false; // 特殊判断
    if (x == 2)
        return true;
    for (int i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)
        {
            return false;
        }
    }
    return true;
}
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    int cnt = 0;
    for (int i = a; i <= b; i++)
    {
        if (isprime(i))
        {
            cnt++;
        }
    }
    printf("%d", cnt);
    return 0;
}